In a software development organization, various software developers develop source codes and software components for implementing various types of functionalities and software applications. Reusing the developed software components can enable faster implementation of new software applications and would be a step forward towards rapid application development (RAD).
There are several challenges in achieving RAD using existing systems due to various technical problems in reusing the developed software components. In some existing systems, there is no search functionality of developed software components based on business logic. In some existing systems, there is no search functionality of developed software components based on technical requirements of the new application. Further, in some existing systems, there is no learning mechanism which can recommend software components for application development with minimal developer assistance.